package com.iatinspur.learn;

/**
 * 19集  讲解 局部变量表
 *    todo 两块区域   【方法区】 【堆区】
 *         线程不共享 【程序计数器】 【Java虚拟机栈】 【本地方法栈】
 *         线程共享   【方法区】 【堆】
 *
 *
 *
 *   Java虚拟机栈 保存java 自己的方法
 *   本地方法栈   保存native c++
 *
 *
 *   todo 栈组成 【局部变量表】 【操作数栈】 【帧数据】
 *
 *   局部变量表 localVariableTable
 *
 *
 *   todo localVariableTable的表头  【编号】  【起始程序】 【长度】 【序号】  【名字】
 *        【编号】 变量的下角标
 *        【起始程序】 要看字节码   如 起始程序是2   字节码如下：
 *                               0 iconst_0
 *                               1 istore_0   所以编号0的变量在行字节码行2开始生效，也就是说行2开始可以进行使用
 *                               2 ........
 *         局部变量表 slot槽   double long 都是两个槽
 *
 *   todo 内存调优
 *        内存问题常见原因
 *        解决对应问题
 */
public class Learn_16_JVM {
    public static void main(String[] args) {
      //  test1();


        test2(3);
    }

    private static void test2(int i) {

        int a = 0;
        long j = 1;
    }

    private static void test1() {
        int i = 0;
        long j = 1;

    }



    public void test3(int k,int m) {
        {
            int a = 0;
            int b = 2;
        }
        {
            int c = 0;
        }
        int i = 0;
        long j = -1;
    }


}








